Ambiente para sair sabendo: código, SQL, API e CLI de verdade
Este HTML não é só leitura. Ele guia laboratórios hands-on no projeto Python projeto_pratico, com quizzes teóricos e desafios corrigidos pelo runner.
Fluxo que você vai dominar
Projeto Python real
Sistema de Pedidos com usuários, papéis, produtos, pedidos, itens, views SQL, CLI e API FastAPI.
cd d:\projetos\PlanoDeEstudo\projeto_praticopython -m app.cli initpython -m exercicios.runner --listarpython -m app.run_apidepois abrahttp://127.0.0.1:8000/docs
Trilha de laboratórios
Laboratório praticável
Dia 0 — Preparar o projeto real
Objetivo: Ter o Sistema de Pedidos rodando no seu PC.
Teoria rápida
- SQLite é um banco em arquivo — ideal para estudar SQL de verdade.
- CLI = interface por comandos; é assim que muita operação de TI acontece.
- Seed = dados iniciais para treinar consultas e fluxos.
Na mão (passos)
cd d:\projetos\PlanoDeEstudo\projeto_praticopython -m venv .venv.\.venv\Scripts\Activate.ps1pip install -r requirements.txtpython -m app.cli initpython -m app.cli sql -q "SELECT login, ativo FROM usuarios"
Laboratório praticável
Lab 1 — Lógica na mão (funções reais)
Objetivo: Escrever e validar funções Python com o runner.
Teoria rápida
- Função = bloco reutilizável com entrada e saída.
- Teste automatizado prova se sua solução está correta.
- Erros (NotImplementedError/ValueError) são feedback, não fracasso.
Na mão (passos)
Abra exercicios\aluno_solucoes.pyImplemente media() e classificar()python -m exercicios.runner --id L02python -m exercicios.runner --id L03
Laboratório praticável
Lab 2 — POO + pilha
Objetivo: Modelar ContaBancaria e validar parênteses com pilha.
Teoria rápida
- Classe agrupa dados + comportamentos.
- Encapsulamento protege o saldo de alterações inválidas.
- Pilha (LIFO) resolve matching de símbolos.
Na mão (passos)
Implemente ContaBancaria e parenteses_ok em aluno_solucoes.pypython -m exercicios.runner --id P02python -m exercicios.runner --id E02python -m exercicios.runner --id P01python -m exercicios.runner --id E01
Laboratório praticável
Lab 3 — SQL de verdade no SQLite
Objetivo: Rodar SELECT/JOIN/relatórios no banco real do projeto.
Teoria rápida
- WHERE filtra linhas; JOIN combina tabelas; GROUP BY agrega.
- INNER JOIN só traz correspondências; LEFT JOIN preserva a esquerda.
- View encapsula consulta reutilizável (vw_faturamento_usuario).
Na mão (passos)
python -m app.cli initpython -m app.cli sql-file sql/consultas_treino.sqlpython -m app.cli relatorios --tipo faturamentopython -m app.cli relatorios --tipo sem-pedidopython -m exercicios.runner --id S01python -m exercicios.runner --id S02python -m exercicios.runner --id S03
Laboratório praticável
Lab 4 — DML + RBAC na CLI
Objetivo: Criar produto/pedido e sentir controle de acesso.
Teoria rápida
- Autenticação = quem é; autorização = o que pode.
- Operador cria; leitor só consulta.
- Pedido deve baixar estoque com integridade.
Na mão (passos)
python -m app.cli login -u ana -p senha123python -m app.cli criar-produto --nome Caderno --preco 19.9 --estoque 50python -m app.cli criar-pedido --item 1:1python -m app.cli pedidospython -m app.cli login -u bruno -p senha123python -m app.cli criar-produto --nome Hack --preco 1 --estoque 1python -m exercicios.runner --id S04python -m exercicios.runner --id X01python -m exercicios.runner --id X02
Laboratório praticável
Lab 5 — API REST + JSON
Objetivo: Subir API, autenticar e consumir endpoints.
Teoria rápida
- GET lê, POST cria, status 200/201/401/403/404 importam.
- Bearer token via header Authorization.
- Swagger em /docs acelera o teste manual.
Na mão (passos)
python -m app.run_apiAbra http://127.0.0.1:8000/docsPOST /auth/login com ana/senha123GET /produtos e GET /relatorios/faturamento com tokenpython -m exercicios.runner --id A01python -m exercicios.runner --id A02python -m exercicios.runner --id A03
Laboratório praticável
Lab 6 — Integrado final (sair sabendo)
Objetivo: Fechar o ciclo profissional completo.
Teoria rápida
- Backup sem teste de restore é frágil.
- Git registra evolução; commits pequenos ajudam.
- Você precisa explicar cada etapa do fluxo App→API→Auth→BD→Acesso→Backup.
Na mão (passos)
python -m app.cli initpython -m app.cli login -u ana -p senha123python -m app.cli criar-pedido --item 1:1python -m app.cli relatorios --tipo toppython -m app.cli backuppython -m pytest -qpython -m exercicios.runner --id F01python -m exercicios.runner --progresso
Quizzes teóricos + práticas guiadas
Exercício diário — Git do zero
Fluxo A — Criação de repositório a partir do localhost
| # | Etapa | Comando (PowerShell) | Feito |
|---|---|---|---|
| 1 | Crie o diretório | mkdir D:\projetos\PlanoDeEstudo |
|
| 2 | Inicie o Git neste repositório | cd D:\projetos\PlanoDeEstudo; git init |
|
| 3 | Logue o Git neste repositório | gh auth login |
|
| 4 | Crie o repositório no usuário logado | gh repo create PlanoDeEstudo --private --source=. --remote=origin |
|
| 5 | Adicione os arquivos no repositório criado | git add . |
|
| 6 | Faça o commit | git commit -m "chore: primeiro commit" |
|
| 7 | Cheque a branch | git branch |
|
| 8 | Faça o push | git push -u origin HEAD |
Fluxo B — Criação de repositório a partir da web
| # | Etapa | Comando (PowerShell) | Feito |
|---|---|---|---|
| 1 | Crie o repositório no site (GitHub) e copie a URL | https://github.com/marciomaia2020/PlanoDeEstudo.git |
|
| 2 | Crie o diretório | mkdir D:\projetos\PlanoDeEstudo |
|
| 3 | Inicie o Git neste repositório | cd D:\projetos\PlanoDeEstudo; git init |
|
| 4 | Logue o Git neste repositório | gh auth login |
|
| 5 | Conecte a URL copiada do site | git remote add origin https://github.com/marciomaia2020/PlanoDeEstudo.git |
|
| 6 | Faça o pull do repositório da web | git pull origin main --allow-unrelated-histories |
|
| 7 | Adicione os arquivos no repositório | git add . |
|
| 8 | Faça o commit | git commit -m "chore: primeiro commit" |
|
| 9 | Cheque a branch | git branch |
|
| 10 | Faça o push | git push -u origin HEAD |
Fluxo Ba — Clonando o repositório a partir da web
| # | Etapa | Comando (PowerShell) | Feito |
|---|---|---|---|
| 1 | Clone o repositório no site (GitHub) | gh repo clone marciomaia2020/PlanoDeEstudo |
|
| 2 | Fork o repositório no site (GitHub) | gh repo fork marciomaia2020/PlanoDeEstudo |
Bibliotecas Python Instaladas
python -m app.run_api| Biblioteca | Versão | Programa / Finalidade | Extensão / Formato | Exemplo de uso | Tipo |
|---|